In recent years, along with the development of multimedia applications, a variety of media information such as images, voice, text, and the like are integrally handled. At this time, by digitization of all the media, it is possible to integrally handle the media. However, since the digitized images contain a huge amount of data, a technique for compressing image information is essential for storing and transmitting data.
On the other hand, it is also important to standardize a compression technique such that compressed image data are interoperable. Image compression standards include, for instance, International Telecommunication Union Telecommunication Standardization Sector (ITU-T) standards denoted with H. 261 and H. 263, International Organization for Standardization/International Electrotechnical Commission (ISO/IEC) standards denoted with Moving Picture Experts Group (MPEG)-1, MPEG-2, and MPEG-4. There is also a standard called H. 264 (MPEG-4AVC) that Joint Video Team which is a tie-up of ITU-T and MPEG is working toward standardization.
Generally, in the coding of a moving picture, an amount of information is compressed by reducing redundancy in temporal and spatial directions. In the inter prediction coding for reducing a temporal redundancy, motion estimation is performed and a prediction image is generated on a block-by-block basis with reference to a previous or subsequent picture, and coding is performed on a different value between the obtained prediction image and the current picture to be coded. Here, a picture is a term to represent a screen, and it represents a frame when used for a progressive image, whereas it represents a frame or a field when used for an interlaced image. Here, the interlaced image is an image in which one frame is composed of two fields having different time. In the coding and decoding of the interlaced image, one frame can be processed as a frame, and as two fields, and as a frame structure or a field structure for each block in the frame.
A picture on which an intra prediction coding is performed without a reference image is referred to as an I picture. A picture on which an inter prediction coding is performed with reference only to a reference image is referred to as a P picture. A picture on which an inter prediction coding is performed with reference to two reference images simultaneously is referred to as a B picture. The B picture can refer to two pictures, as any combination of pictures, selected from the pictures whose delay time is forward or backward. Whereas reference images (reference pictures) can be specified for each macroblock that is a basic unit of coding, they are distinguished as a first reference picture and a second reference picture. The first reference picture is a reference picture which is described in advance in a coded bit stream, and the second reference picture is a reference picture which is described later. It should be noted that the reference pictures need to be already coded as a condition for coding the pictures.
A motion compensation inter prediction coding is used for coding the P picture or the B picture. The motion compensation inter prediction coding is a method which applies motion compensation to the inter prediction coding. Motion compensation is a method for improving prediction accuracy and reducing an amount of data by not simply predicting from a pixel value of a reference frame but estimating an amount of motion in each part of the picture (hereafter called motion vector) and by performing a prediction in consideration of the amount of motion. For example, the amount of data is reduced by estimating a motion vector of the current picture to be coded and coding a prediction residual between a prediction value which is shifted by the motion vector and the current picture to be coded. Since, in the case of this method, information about the motion vector is necessary in decoding, the motion vector is also coded, and recorded, or transmitted.
The motion vector is estimated on a macroblock-by-macroblock basis. More specifically, the motion vector is estimated by fixing the macroblock on the side of the current picture to be coded, shifting the macroblock on the side of the reference picture within a search range, and finding the position of the reference block which is the most similar to the base block.
FIG. 1 is a block diagram showing a configuration of a conventional inter prediction coding apparatus.
The inter prediction coding apparatus includes a motion estimation unit 101, a frame memory 102, subtraction units 103 and 104, a motion compensation unit 105, a coding unit 106, an addition unit 107, a motion vector memory 108, and a motion vector prediction unit 109.
FIG. 2 is a block diagram showing a configuration of the conventional inter prediction decoding apparatus.
The conventional inter prediction decoding apparatus shown in FIG. 2 is an apparatus which decodes coded signal Str which is coded by the conventional inter prediction coding apparatus shown in FIG. 1 to output decoded screen signal Vout. The conventional inter prediction decoding apparatus includes the frame memory 102, the motion compensation unit 105, addition units 107 and 121, the motion vector memory 108, the motion vector prediction unit 109, a decoding unit 122, a local reference memory 123, and a transfer control unit 124.
Among constituent components shown in each of FIGS. 1 and 2, the transfer control unit 124 is a control circuit (constituting area specifying means and reference pixel transfer means) which reads, from the frame memory 102, pixel data of a reference area indicated by a motion vector in a reference picture indicated by reference picture number RefNo. The transfer control unit 124 performs a control of the frame memory 102 with a control signal Ctrl1, and performs a control of the motion compensation unit 105 with a control signal Ctrl2. With this, it is possible to correctly decode a decoded picture signal Vout, that is, a decoded picture RecPel from the coded signal Str.
It should be noted that the coding and decoding are performed by a unit called a 16×16 pixel macroblock. For example, in H. 264, a motion compensation block is used for coding and decoding by selecting an appropriate block size from seven motion compensation block sizes or macroblock sizes of 4×4, 4×8, 8×4, 8×8, 8×16, 16×8, and 16×16 (hereafter, referred to as a small block or sub-block for making a story short). Here, the macroblock can be divided into macroblock partitions (four for the 8×8 size, two for the 8×16 size, and two for the 16×8 size, or one for the 16×16). Moreover, the 8×8 macroblock partitions each can be further divided into sub-macroblock partitions (four for the 4×4 size, two for the 4×8 size, and two for the 8×4 size, or one for the 8×8). In other words, the macroblock can be divided into small blocks by two stages.
Here, when the macroblock is divided into smaller motion compensation blocks, an overhead of a transfer of the reference pixel data increases, with a result that a bus occupancy rate increases. Patent Literature 1 checks motion vectors MV of a plurality of motion compensation blocks in a macroblock and the reference picture numbers RefNo, and increase memory transfer efficiency by performing a batch transfer in the case of the transfers from the same position within a certain range.